package week8;

import jsjf.*;

// 优先队列使用堆实现优先队列。
public class PriorityQueue<T> extends ArrayHeap<PrioritizedObject<T>>
{
    // 创建一个空的优先级队列。
    public PriorityQueue() 
    {
        super();
    }
    
    // 添加新的元素
    public void addElement(T object, int priority) 
    {
        PrioritizedObject<T> obj = new PrioritizedObject<T>(object, priority);
	    super.addElement(obj);
    }
    
    // 从优先队列中删除下一个最高优先级元素，并返回对它的引用。
    public T removeNext() 
    {
        PrioritizedObject<T> obj = (PrioritizedObject<T>)super.removeMin();
        return obj.getElement();
    }
}


